Remediating dissimilarities between digital maps and ground truth data via dissimilarity threshold tuning

ABSTRACT

A network system determines and remediates dissimilarities between a digital map and trace data of a road network in an area as service providers and service requesters coordinate service using the road network in the area. To determine dissimilarities the network system can select and convert a digital map, aggregate received trace data into trace data accurately representing the road network in the area, generate a visualization of the dissimilarities, and remediate the dissimilarities using a variety of methods. A first remediation method includes verifying the dissimilarity using a single service provider, a second method includes verifying the dissimilarity leveraging multiple service providers, and a third method modifies the methods used to determine dissimilarities. After remediation, the network system can generate a map of the area that accurately represents the road network in the area.

CROSS REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional Application No.62/612,526, filed Dec. 31, 2017, which is incorporated by reference inits entirety. This application is related to U.S. patent applicationSer. No. 16/056,122 titled “Remediating Dissimilarities Between DigitalMaps and Ground Truth Data via Map Verification”, filed Aug. 6, 2018,which also claims the benefit to U.S. Provisional Application No.62/612,526, filed Dec. 31, 2017.

BACKGROUND Field

This description relates generally to determining dissimilaritiesbetween maps and ground truth data for a road network and moreparticularly to remediating dissimilarities using client devicestraversing the road network.

Description of the Related Art

Digital maps are often used to provide route guidance. Map datatypically includes features such as roads, bodies of water, points ofinterest, and the like, which are used to render the maps. Map data alsotypically includes information about how the map can be traversed—forexample, a map that includes road networks typically has associated datadescribing how the road network can be used, including direction oftravel (one way, two way), whether turns are permitted at variousintersections, etc.

As features such as roads are added to and removed from the roadnetwork, and as rules for how the network can be traversed are changed,the map data becomes stale and requires updating to remain effective.

SUMMARY

A network system determines and remediates dissimilarities between adigital map and trace data (i.e., position, velocity, acceleration data,etc.) of a road network in an area as service providers and servicerequesters coordinate service using the road network in the area.Determining whether trace data accurately reflects the road network inthe area and whether the accurate trace data represents a dissimilarityrelative to the digital map is challenging when service providers androad networks are highly variable. Thus, subsequent remediation ofdetermined dissimilarities based on the observed trace data such thatmaps of the road network in the area only include accuraterepresentations of the road network is a difficult problem. Accordingly,the network system remediates dissimilarities between trace data anddigital maps by leveraging the large number of service providers andservice requesters to verify dissimilarities. In one example, a serviceprovider is a person using an application of their client device toprovide travel service using the network system. A service requester isa person using an application of their client device to request travelservice using the application.

In one embodiment, the network system can select and convert any numberof digital maps into a format that can be compared to received tracedata. The network system can store the converted digital map in adatastore.

The network system can access trace data received from service providerstraveling the road network in the area and aggregate the trace data intoconsolidated trace data. The network system analyzes the consolidatedtrace data to determine which trace data accurately represents the roadnetwork in the area and generates a set of ground truth data based onthe determination. The network system then accesses a digital map andcompares the ground truth data to the digital map to determinedissimilarities between the two. The dissimilarities can includepositional and directional dissimilarities. In various embodiments, thenetwork system can use statistical analysis, machine learning, andscoring to determine dissimilarities. The network system stores thedissimilarities in the network system.

The network system can remediate the dissimilarities in a variety ofways. In a first technique, the network system sends a dissimilarityverification request to a client device and receives a dissimilarityverification response in return. The dissimilarity verification obtainsinformation about the dissimilarity such that the network system is ableto remediate the dissimilarity and generate a map that accuratelyreflects the road network.

In a second technique, the network system sends a map verificationrequest to a number of client devices and receives map verificationresponses in return. A map verification divides the road network into anumber of road sub-networks and client devices obtain information abouteach of the road sub-networks and their included dissimilarities as theytravel through the road sub-network. Over time, enough information isgathered from each road sub-network that the network system is able toremediate the dissimilarities and generate a map that accuratelyreflects the road network. As each sub-network is remediated, the clientdevices in that road sub-network no longer obtain information aboutremediated road sub-networks when they travel through them.

In a third technique, the network system remediates the dissimilaritiesby modifying the methods and techniques used to determinedissimilarities. In this case, network system determines if the numberof detected dissimilarities is greater than the number of expecteddissimilarities. If the number of detected dissimilarities is greaterthan the number of expected dissimilarities, the network system modifiesthe methods and techniques used to determine dissimilarities. Forexample, the network system can modify a threshold used to determinedissimilarities between the trace data and digital map. Using themodified methods and techniques the network system determines a numberof dissimilarities closer to the expected number of dissimilarities.

In some cases, the network system can generate a visualization of thedissimilarities. The network system accesses the determineddissimilarities and converts the dissimilarities into a format that canbe represented on a digital map. The network system generates arepresentation of the dissimilarities that can be displayed alongsidethe digital map. The network system sends the representation to a clientdevice operating on the road network and the client device displays therepresentations of the dissimilarities alongside the digital map on theclient device. The network system can store the representations and thedigital map in the network system.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 (FIG. 1) is an illustration of a system environment forremediating dissimilarities between digital maps and ground truth datausing a network system, according to one example embodiment.

FIG. 2 is a flowchart of a method to determine dissimilarities betweenreceived trace data and a digital map and remediate thosedissimilarities, according to one example embodiment.

FIG. 3 is an illustration of the map dissimilarity module of the networksystem, according to one example embodiment.

FIG. 4 is a flowchart of a method to convert a digital map into a dataformat that can be compared to trace data, according to one exampleembodiment.

FIG. 5 is a flowchart of a method to determine dissimilarities betweenground truth data and a digital map, according to one exampleembodiment.

FIG. 6A is a flowchart of a method to generate and display avisualization of dissimilarities alongside a digital map, according toone example embodiment.

FIG. 6B is an example of a generated visualization of dissimilarities,according to one example embodiment.

FIG. 7 is a flowchart for a method to remediate dissimilarities using adissimilarity verification, according to one example embodiment.

FIGS. 8A and 8B are a flowchart for a method to remediatedissimilarities using a map verification, according to one exampleembodiment.

FIG. 9 is a flowchart for a method to remediate dissimilarities bymodifying the methods and techniques used in determiningdissimilarities, according to one example embodiment.

FIG. 10 is an illustration of an example machine for reading andexecuting instructions from a machine-readable medium, in accordancewith some embodiments.

The figures depict various embodiments for purposes of illustrationonly. One skilled in the art will readily recognize from the followingdiscussion that alternative embodiments of the structures and methodsillustrated herein may be employed without departing from the principlesdescribed herein.

DETAILED DESCRIPTION

The figures and the following description relate to various embodimentsby way of illustration only. It should be noted that from the followingdiscussion, alternative embodiments of the structures and methodsdisclosed herein will be readily recognized as viable alternatives thatmay be employed without departing from the principles of what isclaimed.

Traditionally, digital maps in a network system can be used tofacilitate service coordination between two parties operating clientdevices within a system environment. For example, a network system maybe used to coordinate a transportation service between a provider and arider. Maps can be used for many purposes, including determining routinginformation, relative positioning, travel time estimations, farecalculations, etc. Generally, the maps used by network system include aroad network representing an area in which the transportation service isbeing coordinated. These digital maps may be obtained from third partiesor created in some other manner. However, the map may have been createdinaccurately, and in addition, over time the road network in theenvironment may change and the digital maps are no longer an accuraterepresentation of that environment. In these cases, trace data fromclient devices—that is, data representing the actual movement of aclient device as it traverses the road network—can be used to determinedifferences, which we refer to as dissimilarities, between digital mapsand the current road network.

FIG. 1 is a diagram of a system for determining differences betweendigital maps and the current road network, according to one embodiment.The system environment includes a service requester device 110A, aservice provider device 110B, a network 130, and a network system 140.The service requester device 110A and the service provider device 110are configured to collect trace data as the devices coordinate servicewithin the environment.

The service requester device 110A and the service provider device 110Binclude an application 120 including a telematics module 122. Telematicsmodule 122 is configured to obtain trace data as devices 110 coordinateservice using the current road network. The trace data can includeposition, velocity, acceleration, or any other service, geographic, orlocation-based information. Generally, telematics module 122 gatherstrace data from sensors on client devices 110 (e.g., a globalpositioning system, accelerometers, etc.). In one embodiment, telematicsmodule 122 associates the gathered trace data with the current positionof client device 110 as it traverses the current road network and sendsthe trace data to network system 140. Accordingly, because the tracedata depicts actual movement through the road network, it provides acurrent representation of the road network in the area.

Network system 140 facilitates service coordination between devicesusing maps of an area. As such, network system 140 includes a mapdatastore 160 that stores current maps of the road network in the area.In one embodiment, the road network may be represented in the datastoreas sets of road segments connected by nodes and identified bycoordinates. Further, the road network includes a connection rulesetthat defines allowable ways for the road segments and nodes to beconnected (e.g., direction of travel, speed, etc.). The road segments,nodes, and connection ruleset, in aggregate, form a representation of aroad network in a geographic area which is used to facilitate servicecoordination by network system 140.

In some cases, trace data received from client devices 110 coordinatingservice using the current road network is dissimilar from the roadnetwork described by the map data of the digital map. In this case, mapdissimilarity module 150 of network system 140 determines thedissimilarities using maps stored in the map datastore 160. As anexample, FIG. 2 is a process 200 for determining the differences in aroad network using trace data received from client devices 110 and adigital map.

To begin, network system 140 receives 210 trace data from client devices110 in the system environment 100. The trace data includes informationrepresenting the road segments and nodes of the current road network inthe area. As an example, Chris is coordinating service with Danielle andis traversing the road network using a route based on a digital mapprovided by network system 140. A recent construction project in thearea has started and the provided route is no longer accurate and Chrisand Danielle take a detour. As part of normal trace data collection,Chris and Danielle's client devices 110 obtain trace data reflectingthis detour and send the trace data to network system 140.

Further, network system 140 aggregates 220 the trace data from clientdevices 110. Aggregating the trace data from client devices 110 allowsnetwork system 140 to determine a likelihood that specific traces of thetrace data are anomalous. Similarly, network system 140 can compare theaggregated trace data to the digital map and determine 230 a likelihoodthat the current road network is dissimilar from the digital map.Continuing the example, the construction project in the area islong-term and many client devices 110 are forced to take detours.Network system 140 determines that the received trace data representingthe detour is not anomalous. At any point, network system 140 can storereceived individual trace data or aggregated trace data in the mapdatastore 160.

When network system 140 determines that the current and historical roadnetworks are dissimilar, network system 140 can act to remediate 240dissimilarities using verification module 124 of the application 120 onclient device 110. In one embodiment, remediating the dissimilaritiescan include reobtaining trace data or obtaining images and videos forthe dissimilar areas of the road network. For example, Chris' vehicleincludes an expanded set of sensors that can obtain trace data andimagery information about the road network. In this case, network system140 can send a notification to Chris to obtain trace data and imageryinformation when traversing a road network with a determineddissimilarity.

In some cases, network system 140 systemically determines thatdissimilarities are determined incorrectly. In this case, network system140 can remediate 240 the dissimilarities by tuning a threshold used todetermine the likelihood that the current road network is dissimilarfrom the digital map.

I. System Environment

Returning to FIG. 1, environment 100 illustrates a detailed view ofmodules within a network system 140 and client devices 100 that enableservice coordination, according to one embodiment. Some embodiments ofnetwork system 140, and client devices 110 have different modules thanthose described herein. Similarly, the functions can be distributedamong the modules in a different manner than is described herein. Asused herein, the term “module” refers to computer program logic used toprovide the specified functionality. Thus, a module can be implementedin hardware, firmware, and/or software.

Network system 140 enables service coordination in the environment 100between client devices 110. Users of network system 140 may includeproviders that provide a service to other users. In an example use case,a provider operates a vehicle to transport a user from a first location(e.g., an origin or pickup location) to a second location (e.g., adrop-off location). Other types of service include, for example,delivery of goods (e.g., mail, packages, or consumable items) orservices. Although the embodiments herein for facilitating servicecoordination are described with respect to a travel service, theembodiments herein can be applied to any type of service that requires aservice coordination via a network system 140.

As an example, network system 140 enables coordinating travel servicebetween users of client devices 110 within the environment 100. In thecontext of the description, an operator of a transportation vehicle(e.g., the service provider) provides the service of transporting aperson (e.g., the service requester) to a destination requested by theperson. In one embodiment, transportation vehicles include vehicles suchas cars and motorcycles, as well as public transportation vehicles suchas trains, light rail, buses, etc. In some cases, the transportationvehicles can be outfitted with a sensor suite that allows the user ofclient device 110 to obtain information about the road network andenvironment 100 as it traverses the road network.

Further, a client device 110 can correspond to a mobile computingdevice, such as a smartphone or can correspond to an onboard computingsystem of a vehicle. Network system 140 can also correspond to a set ofservers and can operate with or as part of another system thatimplements network services. Network system 140 and client devices 110comprise a number of “modules,” which refers to hardware componentsand/or computational logic for providing the specified functionality.That is, a module can be implemented in hardware, firmware, and/orsoftware (e.g., a hardware server comprising computational logic), otherembodiments can include additional modules, can distribute functionalitybetween modules, can attribute functionality to more or fewer modules,can be implemented as a standalone program or as part of a network ofprograms, and can be loaded into memory executable by processors.

In one embodiment, the transportation of a person from a startinglocation to a destination location is referred to as a trip or atransport service. Network system 140 calculates a route from thestarting location to the destination location along a set of roadsegments within the environment based on a digital map of the roadsegments within the environment. Generally, network system 140calculates fares for transport services and coordinates those transportservices. A fare is a monetary payment from a service requester to aservice provider in exchange for the service provider transporting theservice requester to a destination location. Network system 140 maycalculate the fare for a transport service based on the distancetraveled along the route during the trip (and/or based on a duration ofthe trip, any applicable tolls, fees, etc.). Network system 140determines the distance traveled during the transport service usinggeographic information (e.g., telematics data) received from clientdevices A. (e.g., such as after completion of the transport service).

Network system 140 receives (e.g., periodically) geographic informationfrom a client device 110 included in a transportation vehicle as thetransportation vehicle moves its position. The geographic informationincludes geographic points that describe a trip of the transportationvehicle. In one embodiment, the geographic information is globalpositioning system (GPS) information. Throughout the description,geographic information is referred to as telematics data or trace data,but the description herein can be applied to any other type ofgeographic coordinate system.

As shown in FIG. 1, network system 140 is in communication with aservice provider device 110A and the service requester device 110B via anetwork(s) 120. In one embodiment, the network 120 is the Internet orany combination of a LAN, a MAN, a WAN, a mobile, wired or wirelessnetwork, a private network, or a virtual private network. While only asingle service provider device 110A and a single service requesterdevice 110B are shown in FIG. 1, any number of client devices 110 can bein communication with network system 140 via the network 130. Further,while described as a service requester device 110A and a serviceprovider device 110B, any client device 110 within the environment 100can include functionality for being a service requester or a serviceprovider.

In one embodiment, the service requester device 110B is an electronicdevice (e.g., a smartphone) of a person that requested service. Theservice requester device 110B is used by the person to request atransport service from a starting location to a destination location viaa client application 120 included in the service requester device 110B.The client application 120 allows the user of the service requesterdevice 110B to submit a transport service request, which network system140 then processes in order to select an operator of a transportationvehicle.

According to examples, the transport service request may include (i) auser identifier (ID), (ii) a pickup location (e.g., a locationidentifier specified by the user or a location identifier of the currentposition of the service requester device 110B as determined by atelematics module 122 included in the service requester device 110B,(iii) a destination location, and/or (iv) a vehicle type. For example,the telematics module 122 uses sensors (e.g., a GPS receiver) includedin the service requester device 110B to determine the position of theservice requester device 110A at various instances in time. In oneembodiment, the current position of the service requester device 110B isrepresented by a location identifier such as latitude and longitudecoordinates. The current position of the service requester device 110Bis also associated with a time stamp indicating the time and the date inwhich the telematics module 122 measured the current position of theservice requester device 110B. Alternatively, the pickup location of theservice requester device 110B may be manually inputted into the servicerequester device 110B by the user of the device, such as by selecting alocation on a map or in the form of an address including at least astreet number and street name.

The coordination service, which is implemented by network system 140and/or other servers or systems, can receive the transport servicerequest over the network 130 and can select a service provider for therequester. In one example, the coordination service can (i) identify apool of service providers that are available to provide the requestedservice and satisfy one or more conditions (e.g., have the specifiedvehicle type, and/or are within a predetermined distance or estimatedtravel time away from the pickup location), (ii) select a serviceprovider from the pool of service providers, and (iii) transmit aninvitation to the service provider device 110A. The invitation caninclude the pickup location so that the selected service provider 110Acan navigate to the pickup location for initiating the trip for therequester 110B. If the selected service provider accepts the invitationby providing input on the service provider device 110A, network system130 can notify the service requester device 110B accordingly.

In one embodiment, the service provider device 110A is an electronicdevice (e.g., a smartphone) located within the transportation vehicleused to complete trips. The service provider device 110A includes aclient application 120. The client application 120 displays, on theservice provider device 110A, information about a trip that the serviceprovider has agreed to provide, such as the pickup location, and/ornavigation and/or mapping information instructing the service providerto travel to the pickup location. As referred to herein, the pickuplocation may be the current location of the service requester device110A or a location specified by the user of the service requester device110B. The client application 120 may also display, on the serviceprovider device 110A, the destination for the assigned trip if providedby the user of the service requester device. In some examples, a clientdevice 110 can be executing a third party application while stillallowing network system 140 to determine dissimilarities between tracedata and a map. That is, network system 140 can determinedissimilarities using aggregated trace data and maps from any number ortype of applications 120 or client devices 110.

Client devices 110 include a telematics module 122. Telematics module122 uses one or more sensors of client device 110 to identify trace datafrom the service provider device 110A and the service requester device110B. When client application 120 is a travel service coordinationapplication, telematics module 122 can identify GPS data from thetransportation vehicle as the transportation vehicle moves along one ormore road segments and nodes to complete a trip. The GPS data of thetransportation vehicle (or client device 110) represents thetransportation vehicle's position at different instances in time duringa trip. For example, at time T1, client device 110 can be at aparticular GPS location, identified by a location identifier (e.g.,latitude and longitude coordinates) and a time stamp indicative of thetime and date when client device 110 measured its current position. Ifthe transportation vehicle is moving, at time T2 client device 110 canbe at a different GPS location. In this manner, client device 110periodically measures the current position of the transportation vehicle(e.g., every three seconds, every four seconds, etc.) and periodicallyprovides GPS data that is representative of the position of thetransportation vehicle over time to network system 140. Alternatively,client device 110 may provide GPS data whenever new or updatedmeasurements of the current position of the transportation vehicle aretaken or are available.

Further, client device 110 include a verification module 124 whichfacilitates client device 110 or user of client device 110 inremediating dissimilarities between trace data and digital maps innetwork system 130. Verification module 124 receives verificationrequests from network system 140 and sends verification responses tonetwork system 140 in response. A verification request requestsinformation about the environment to assist in remediatingdissimilarities. A map verification response includes verificationinformation gathered about the environment and provided to networksystem 140 to assist in remediating dissimilarities. For example, invarious embodiments, the verification information can include imagery,LIDAR, additional telematics data, information of the environmentprovided by the user, or any other obtainable information about theenvironment.

In some embodiments, verification module 124 is configured to operate inconjunction with normal operation of the client application 120. Thatis, as service providers and service requesters coordinate servicewithin the environment 100, verification module 124 automatically anddynamically interacts with network system 130 to remediatedissimilarities between trace data and maps in network system 130. Inother embodiments, verification module 124 is configured to operatedisparately from normal operation of the application 120 (e.g., a“verification mode”). That is, service providers and service requesterswithin the environment may act to reconcile dissimilarities between mapsin network system without engaging in service coordination.

Further, network system 140 includes map datastore 160 and mapdissimilarity module 150. Map datastore 160 stores maps of theenvironment 100 in network system 140. The stored maps can be of anyarea or region and can include any set of road segments, nodes, andconnection rulesets. Further, the map datastore can store any of themetadata and telematics data associated with a map. Maps stored in themap datastore can be in any map format.

Map dissimilarity module 150 of network system 140 determinesdissimilarities between trace data and maps stored in map datastore 160and acts to remediate those dissimilarities. Map dissimilarity module150 is described in more detail in regards to FIG. 3. Map dissimilaritymodule 320 includes conversion module 310, differential module 320,visualization module 330, and remediation module 340.

Conversion module 310 converts digital maps into a format such that adigital map can be compared to trace data received from client device110. Conversion module 310 is configured to read, interpret, convert,and store any manner of data types typically associated with storinggeographical information in a computer file. For example, conversionmodule 310 can utilize raster data types such as ADRG, and Esir Grid,vector data types such as GeoJSON, TIGER, or Shapefile, grid formatssuch as GeoTIFF, SDTS, or any other type of map format. Functionality ofthe conversion module 310 is described in more detail in regards to FIG.4.

Differential module 320 determines the dissimilarities between receivedtrace data and digital maps of the area. Functionality of thedifferential module 320 is described in more detail in FIG. 5.

Visualization module 330 generates a visualization of the determineddissimilarities of the area. Functionality of visualization module 330is described in more detail in regards to FIG. 6A.

Remediation module 340 acts to remediate dissimilarities in the area. Inone approach, remediation module 340 generates a map verificationrequest and sends the map verification request to a client device 110.In response, remediation module 340 receives a map verification responseand remediates the dissimilarities based on information in the response.In a second approach, remediation module 340 generates a dissimilarityverification request and sends the dissimilarity request to clientdevice 110. In response, remediation module 340 receives a dissimilarityverification response and remediates dissimilarities between the digitalmap and the received trace data based on information in the response. Inanother approach, remediation module 340 modifies methods used bydifferential module 320 to determine dissimilarities. Functionality ofremediation module 340 is described in more detail in regards to FIGS.7-9.

II. Converting Maps

Conversion module 310 can convert a digital map into a format such thatit can be compared to trace data. Alternatively, conversion module 310can convert trace data into a format such that position information inthe trace data can be compared to position information in digital maps.In general, however, conversion module 310 converts either the tracedata or the digital map into a format such that network system 140 candetermine a dissimilarity between the digital map and the trace data andact to remediate the dissimilarities.

FIG. 4 illustrates a flow diagram of a method 400 for converting a mapin one format to another format using conversion module 310, accordingto one example embodiment. Here, for purpose of example, conversionmodule 310 converts a digital map stored in map datastore 160 into aformat that can be compared to trace data received from client devices110. However, a similar method to method 400 can be employed to converttrace data into a digital map or a digital map in one format to adigital map in another format.

To begin, conversion module 310 selects 410 a digital map to accessbased on a set of map criteria. The set of map criteria can include, thegeographic region of the digital map, the geographic region of the tracedata, the accuracy of the digital map, the precision of the digital map,the age of the digital map, the size of the digital map (in area or instorage space), or any other number of criteria. The set of map criteriacan be determined by a client device 110, stored on network system 140,determined by an administrator of network system 140, etc. Selecting anappropriate digital map based on the set of map criteria improves theability of network system 140 to determine dissimilarities and,subsequently, remediate the determined dissimilarities.

Conversion module 310 accesses 420 the selected 410 digital map from mapdatastore 160 of network system 140. However, in some cases, theconversion module 310 can access the selected digital map from anynumber of alternate storage locations (e.g., a map server, a clientdevice, etc.).

Using the aforementioned example for context, Danielle is providing aservice to Chris in an area in San Francisco, Calif. using his serviceprovider device 110A. Danielle's client device 110B is continuouslyproviding trace data to network system 140 as he transports Christhrough the road network in the area of San Francisco. A map of the areain San Francisco, Calif. is stored in the map database 160 of networksystem 140. However, the stored map data is relatively old and the mapcriteria stored in network system indicates that the selected map shouldbe the most recent map of the area available. Accordingly, conversionmodule 310 selects 410 and accesses 420 the most recently updated map ofthe area in San Francisco, Calif. from a remote map server.

Conversion module 310 converts 430 the accessed digital map into a dataformat that can be compared to the received trace data. Finally,conversion module 310 can store 440 the converted digital map in the mapdatabase for future use by network system 140. That is, each digital mapmay be stored in the map datastore 160 in any number of formats suchthat the digital map does not have to be converted each time it isaccessed.

Continuing the example, the accessed 420 digital map of the road networkof the area in San Francisco, Calif. is stored in the GeoJSON format andthe trace data received from Danielle's service provider device 110B isa series of GPS coordinates. The conversion module 310 converts 430 theGeoJSON of the digital map into a set of GPS coordinates representingthe road segments and nodes of the road network included in the accessed420 digital map. As such, both the digital map and the trace data are ina similar format and can be analyzed for dissimilarities by networksystem 140. The conversion module stores 440 the converted digital mapin the map database.

In some cases, the conversion module 310 can aggregate digital mapsbased on the set of map criteria. Aggregating digital maps can includeaccessing multiple digital maps, converting the maps into a similar dataformat, and combining the two digital maps into a single digital map.Aggregating digital maps allows the conversion module 310 to generate adigital map including more information than a non-aggregated digitalmap.

III. Determining Differences Between Trace Data and Digital Maps

Referring again to FIG. 3, differential module 320 can determinedissimilarities between trace data and digital maps of the area.Generally, a dissimilarity is a difference between trace data accuratelyrepresenting the area and a digital map of the area. Herein,“unfiltered” trace data refers to the trace data received from devicesas they operate in the environment and “ground truth data” refers toanalyzed and filtered trace data determined to accurately reflect theroad network of the environment.

In various configurations, trace data and digital maps can include bothpositional and directional information about an area. Positionalinformation can include the location of segments and nodes (i.e.,elements) of a road network in an area (e.g., the latitude and longitudecoordinates of map elements). Directional information can include theallowable connections between elements of a road network in an area(e.g., allowable turns from one road segment to another road segment,direction of travel on a road segment). Accordingly, dissimilarities caninclude positional/geometric dissimilarities and directionaldissimilarities.

A positional/geometric dissimilarity is a difference in the locationand/or shape of a specific element in ground truth data compared to thelocation of a similar element in the digital map. For example, MarketSt. in San Francisco, Calif. is a road segment that connects 37°47′4.517″ N and 122° 27′59.88″ W to 37° 47′36.627″ N and 122° 23′46.833″W in the ground truth data and connects 37° 47′5.632″ N and 122°27′59.88″ W to 37° 47′37.128″ N and 122° 23′46.833″ W in the digitalmap. In another example, California Street in San Francisco, Calif. is aroad segment that is approximately linear in the ground truth data whileis a light curve in the digital map. Here, in both cases, apositional/geometric dissimilarity exists between the ground truth dataand the digital map. This positional/geometric dissimilarity isdescribed as means of example, positional/geometric dissimilarities caninclude any of elements in an incorrect position, overlapping elements,duplicated elements, extraneous elements, missing elements, or any otherlocation and/or shape based dissimilarity.

A directional dissimilarity is a difference in a specific connection ordirection of elements in the connection ruleset of ground truth datacompared to the similar connection or direction of elements as definedin the connection ruleset of a digital map. For example, when travelingeastward on California St. in San Francisco, Calif., turning right andtraveling southward on Franklin St. is an allowable connection in theground truth data and is not an allowable connection in the digital map.Thus, a directional dissimilarity exists between the ground truth dataand the digital map. This directional dissimilarity is described asmeans of example, however directional dissimilarities can additionallyinclude a two-way road labeled as a one-way road, a one-way road labeledas a two-way road, a one-way road with a mislabeled direction of travel,an allowed connection defined as disallowed, or a disallowed connectiondefined as allowed, or any other directional dissimilarity

Differential module 320 determines both positional and directionaldissimilarities between trace data and a digital map using varioustechniques. FIG. 5 illustrates a flow diagram of a method 500 fordetermining dissimilarities using differential module 320, according toone embodiment.

To begin, differential module 320 accesses 530 trace data. The accessedtrace data can be any trace data reflecting a road network of an area inthe environment. Differential module 320 can access 530 trace datastored in the map datastore 160 or another network system. In somecases, the trace data is received from client devices (e.g., clientdevice 110) as client devices coordinate service and travel through theroad network in the area.

Differential module 320 aggregates 520 the accessed 510 trace data intoconsolidated trace data. That is, differential module 320 aggregates 520trace data associated with each element of the road network in the area.For example, over time, many service providers using client devices 110transport requesters by traveling eastward on California Street in SanFrancisco. Each service provider generates trace data representingCalifornia Street and sends that trace data to network system 140.Differential module 320 aggregates 520 the trace data received fromservice providers into consolidated trace data for California Street inSan Francisco. In some configurations dissimilarity module accesses 520consolidated trace data.

However, in some cases, consolidated trace data does not alwaysaccurately represent the road network in the area. For example, whiletransporting a passenger eastward down California Street, one providerapproaches a red stop light, stops, and proceeds to turn right on GoughStreet when the stoplight is green. A different provider approaches thered stop light and drives onto Gough Street using a parking lot on thecorner of California Street and Gough Street. The trace data reflectingthe trips of these two providers are both included in the consolidatedtrace data. However, the trace data of one provider is an accurate trace(i.e., the trace of the provider that waited at the stop light) whilethe other trace is an inaccurate trace (i.e., the trace data from theprovider who skipped the stop light).

As described above, where trace data differs from map data, thedifferences may be indicative of inaccurate map data. Prior to comparingtrace data with map data, however, it is useful in various embodimentsto eliminate from consideration trace data not likely to beaccurate—that is, not valid ground truth data. Differential module 320can determine which traces are accurate and which traces are inaccurate(i.e., trace accuracy) to determine 530 ground truth data using anynumber of techniques. Differential module 320 can determine differentthresholds for determining ground truth data based on the map element,the geographic location of the road network, characteristics of thedigital map, characteristics of the road network, etc. In some cases,the thresholds are determined by remediation module 340.

In one example, differential module 320 determines trace accuracy via astatistical analysis of consolidated trace data. For instance, if atrace has less than a threshold likelihood (e.g., 0.1%) of being anaccurate trace, the differential module 320 determines the trace isinaccurate. Alternatively, if a trace for an element occurs in less thana threshold number (e.g., 1%) of the traces for that element,differential module 320 determines the trace is inaccurate. Some examplestatistical methods can include outlier rejection methods, expectedvalue analysis, probability analysis, etc. Inaccurate traces are removedand the accurate traces are aggregated into ground truth data.

In another example, differential module 320 determines 530 traceaccuracy and ground truth data using a machine learning model. Themachine learning model can be trained on verified trace data, similarroad networks, etc. The machine learning model receives the consolidatedtrace data and generates ground truth data. The machine learning modelcan be further trained using the generated ground truth data.

In various configurations, differential module 320 determines 530 groundtruth data by determining a score (e.g., p-value, confidence score,geometric similarity score, etc.) representing the likelihood thattraces are accurate or inaccurate based on a scoring metric whendetermining trace accuracy. If the score for a trace is above athreshold the score is considered accurate and included in the groundtruth data.

Whatever the case, differential module 320 uses only accurate tracesfrom the consolidated trace data (i.e., ground truth data). In someexamples, differential module 320 can remove inaccurate traces from theconsolidated trace data when generating ground truth data, or, inanother example, may tag inaccurate traces and ignore them whengenerating ground truth data

Differential module 320 accesses 540 a digital map of the road networkin the area. Generally, the digital map has been converted 430 into adata format that can be compared to ground truth data. Differentialmodule 320 can access 540 a digital map from the map database 160 orfrom another network system including a digital map of the area.

Differential module 320 determines 550 dissimilarities between theground truth data and the digital map. Again dissimilarities can includeboth positional and directional dissimilarities. Differential module 320determines dissimilarities for the road network of the area using avariety of techniques.

In a first example, differential module 320 compares a position (e.g.,coordinates) map element between the ground truth data and the digitalmap. If the difference in the two positions is greater than a threshold,then the differential module 320 determines 550 that there is adissimilarity. Differential module 320 can determine differentthresholds for determining dissimilarities based on the type of segment,the geographic location of the road network, characteristics of thedigital map, etc. In some cases, the thresholds can be provided by theremediation module 350. For example, differential module 320 can use afirst threshold when comparing ground truth data to a digital map for analleyway in the Castro district of San Francisco, Calif., and a secondthreshold for a highway through farmland in Gilroy, Calif. Further, adissimilarity can be determined for any portion of a map element. Thatis, if an element is from A to C, the element can include adissimilarity from A to B, and no dissimilarities from B to C.

In a similar manner to determining 530 ground truth data fromconsolidated trace data, differential module 320 can determine 550dissimilarities using statistical analysis, machine learning, andscoring. Here, however, differential module 320 determines 550 whetheror not a given trace, or set of traces, indicate that there is adissimilarity between the ground truth data and digital map. Forexample, a digital map indicates that turning left onto Fillmore Streetfrom California Street in San Francisco, Calif. is not allowed. However,30% of the traces included in the ground truth data indicate that aprovider has taken a left turn onto Fillmore Street from CaliforniaStreet. In this case, differential module 320 determines that there is adissimilarity. In a contrary example, 2% of traces included in groundtruth data indicate that a provider has taken a left turn onto FillmoreStreet from California Street. Here, these traces could indicate that 2%of providers make an illegal turn onto Fillmore Street from CaliforniaStreet and differential module 320 determines 550 that there is not adissimilarity. In this case, there are enough providers making illegalturns for those traces to be included in the ground truth data, but notenough traces to indicate that there is a dissimilarity.

Differential module 320 can also characterize the dissimilarities, orany subset of dissimilarities, in a variety of manners. In one example,differential module 320 can generate a score reflecting a degree ofdissimilarity between the digital map and ground truth data. In anotherexample, differential module 320 can calculate a dissimilarity densityreflecting a density of dissimilarities in a given area of theenvironment 100. Further, differential module 320 can include thedissimilarity type and dissimilarity location with each dissimilarity.

Differential module 320 stores 560 the determined dissimilarities in mapdatastore 160 for use by network system 130. Alternatively, differentialmodule 320 can send the dissimilarities and, in some configurations,their characterizations to visualization module 330, remediation module340, or a different network system.

IV. Visualizing Differences Between Trace Data and Maps

Referring again to FIG. 3, visualization module 330 can createvisualizations of the dissimilarities. The visualizations can be createdin a variety of manners and provide a visual representation of thevarious degrees and types of dissimilarities between the digital map andthe trace data.

FIG. 6A illustrates a flow diagram or a method 600 for creating avisualization of dissimilarities between a digital map and trace data,according to one embodiment. The described embodiment is provided as acontextual example for a particular visualization depicting determined550 dissimilarities in map elements of a digital map and received tracedata. However, the visualization can be based on the type of determined550 dissimilarities between a digital map and trace data as describedherein.

To begin, visualization module 330 accesses 610 determined 550dissimilarities between a digital map and received trace data. In someembodiments, accessing 610 the determined 550 dissimilarities includesaccessing the dissimilarities stored in map datastore 160. However, invarious other configurations, accessing 610 determined dissimilaritiescan include receiving the dissimilarities from client device 110,network system 140, or differential module 320. Further, thedissimilarities can additionally include any other previously determineddissimilarities present in network system 140 (e.g., dissimilaritiesfrom other client devices, dissimilarities based on other digital maps,etc.). Generally, the accessed 610 dissimilarities are associated withan area of a digital map.

Visualization module 330 converts 620 the accessed dissimilarities intoa data format that can be presented alongside the digital map (i.e.,dissimilarity data) on a visual display (e.g., a visual display of aclient device 110). In one example, differential module 320 converts 620dissimilarities into a similar data format as the digital map. However,in some configurations, differential module 320 converts 620dissimilarities into a data format compatible with the digital map whenthe dissimilarities and the digital map are displayed concurrently.

Continuing the example, the visualization module 330 accesses 610dissimilarities between trace data received from Danielle's clientdevice and the digital map from the map datastore 160. Here, thedissimilarities are localized to the area of San Francisco in whichDanielle was providing transport to Chris included in the accessed 420digital map. In this example, the stored 560 dissimilarity data is a setof differential GPS coordinates representing differences between thereceived trace data and the digital map. Visualization module 330converts 620 the differential GPS coordinates into dissimilarity data inthe GeoJSON format of the accessed 420 digital map. In some cases, thedissimilarity data can additionally include information about the type,degree, location, etc. of the determined dissimilarities.

Visualization module 330 generates 630 visual representations of thedissimilarity data based on a set of visualization criteria. The set ofvisualization criteria defines how dissimilarity data will be displayed.The set of visualization criteria can be defined by a client device,stored in network system 140, or defined by a network systemadministrator. As an example, the visualization criteria can includecoloring each road segment of the digital map based on degree and/ortype of dissimilarity, displaying visual icons in areas where the numberof dissimilarities is above a threshold, adding textual overlays inareas where the number of dissimilarities is above a threshold,displaying different line widths or styles of each road segment of thedigital map based on degree and/or type of dissimilarity, or any othertype of visualization criteria. Generally, the visualizations aregenerated 530 such that they can be viewed simultaneously to the digitalmap without significantly occluding the information contained in thedigital map. However, in practice, some of the visualization may obscuresome information included in the digital map. Whatever the case, visualrepresentations of dissimilarity data present additional informationabout a digital map when the two are viewed simultaneously.

Continuing the example, several of the map elements traveled by Daniellein the area of San Francisco were dissimilar to their analogous roadsegments and nodes in the digital map. The differences were converted620 into a GeoJSON format and the visualization module generates 630 avisualization to represent those differences. In one example, thevisualization 330 module generates 630 a heat map overlay for thedigital map indicating dissimilarities between roadmap elements. Theheat map indicates similar map elements as a first color and highlydissimilar road segments and nodes as a second color. A degree ofdissimilarity can be indicated by a range of colors between the firstcolor and the second color. In an embodiment, the generated 630 heat mapis configured to overlay the digital map such that heat map is alignedto road segments and nodes of the digital map. That is, the heat map canbe aligned to road segments and nodes of the digital map even ifportions of the digital map are inaccurate.

Visualization module 330 associates the visualizations with the digitalmap and stores 650 the visualizations in the map database. In someinstances, visualization module 330 sends the visualizations to a clientdevice 110 such that client device can present the visualizationsalongside a map of the road network on a display of client device. Inother examples, client devices 110 can access the stored 650visualizations such that they can be displayed on the display of theirclient device 110 alongside a digital map.

Returning to the example, visualization module 330 stores the heat mapin the map datastore 160. Danielle continues to provide service andtransport service requesters in the area of San Francisco. Whileproviding service, Danielle's client device 110 receives the heatmapvisualization from network system 140 and displays the heat map adisplay of his client device 110.

FIG. 6B is an example visualization 660 generated by the visualizationmodule 330 to display determined dissimilarities, according to oneexample embodiment. In the illustrated example visualization 660, theroad network on a digital map is indicated by the grey areas. Thedissimilarities for various road segments of the road network areindicated by the various dashed lines overlaid on top of the digitalmap. Each type of dashed line can represent a different type or degreeof dissimilarity. For example, one type of dashed line 662 can representa positional dissimilarity while another type can indicate a directionaldissimilarity 664. For example, dissimilarity 662 indicates that thereis a directional dissimilarity for the turn between adjacent roadsegments. Dissimilarity 664 indicates that there is a positionaldissimilarity because the road segment is in the wrong location. Invarious other embodiments, dissimilarities can be indicated by any othershape, color, etc. as described above.

V. Remediating Dissimilarities Between Ground Truth Data and Digitalmaps

Referring again to FIG. 3, remediation module 340 can act to remediatedissimilarities determined between ground truth data and the digitalmap. For example, in some cases, the dissimilarity is caused by anaccurate digital map and inaccurate trace data, while in other cases,the dissimilarity is caused by accurate ground truth data and aninaccurate digital map. In either case, remediation module 340determines if the ground truth data or the digital map is accurate andgenerates a corrected digital map, if needed, in response. The correcteddigital map accurately represents the road network in the area.

V. A Remediating Dissimilarities with a Dissimilarity Verification

In one configuration, remediation module 340 acts to remediatedissimilarities by sending a dissimilarity verification request to aclient device and receive a dissimilarity verification response inreturn. FIG. 700 is a flow diagram of an example method 700 forremediating dissimilarities via dissimilarity verification requests andverification responses, according to one example embodiment.

Remediation module 340 accesses 710 determined 550 dissimilarities andsends 720 a dissimilarity verification request to client 110 via network130. The verification request includes at least one of the accessed 710determined 550 dissimilarities and its characteristics that can beverified by client device 110 traveling the road network. Verificationmodule 124 of client device 110 receives 720 the verification request.Remediation module 340 can send a verification request to client devices110 for any number of reasons. In some configurations, remediationmodule determines if a client device 110 is traveling the road networkin the area within a threshold distance of the dissimilarities.Additionally, a system administrator can use remediation module 340 tosend a verification request to client devices 110. In some cases,remediation module 340 can include a verification request in the routeinformation of a service provider traveling the road network.

As an example, in one embodiment, remediation module 340 accesses a setof dissimilarities associated with San Francisco from map datastore 160.Remediation module 340 sends 710 a verification request including adissimilarity and its characteristics to Greg who is operating theapplication 120 on his client device 110 in verification mode whiletraveling through San Francisco. The verification module 124 of Greg'sclient device 110 receives 730 the verification request and provides thedissimilarity and its characteristics on the display of his clientdevice. In this case, Greg's client device 110 displays a map of thearea and the location of the dissimilarity and any characteristicsrelevant to verifying the dissimilarity. For example, Greg's clientdevice 110 may display on a map that a dissimilarity exists at thecorner of California Street and Montgomery Street in San Francisco,Calif. Greg's client device 110 additionally displays that thedissimilarity is a directional dissimilarity in which the digital mapdefines that turning left onto Montgomery Street from California Streetis allowed while the ground truth data defines the turning left ontoMontgomery Street from California Street is not allowed.

Verification module 124 obtains 730 verification information about thedissimilarity such that the dissimilarity can be remediated byremediation module 340. Verification information can include trace datafrom client device 110, images of the dissimilarity from client device110, a report submitted by the user, or any other method of verifying adissimilarity.

For example, Greg travels the road network to the dissimilarity on thecorner of California Street and Montgomery Street. Greg obtainsverification information 740 about the dissimilarity by taking an imageof the dissimilarity including a sign showing that turning left ontoMontgomery Street is illegal. Additionally, network system 140 providesa route for Greg to drive such that when the route is completed, theverification information obtained while traveling the route (e.g., tracedata, images of surroundings, etc.) allows the remediation module toremediate the dissimilarity. Further, Greg obtains 740 verificationinformation by filling out a report regarding the dissimilarity.

Verification module 124 sends 750 a dissimilarity verification responseincluding the verification information to the network system 140.Remediation module 340 receives the dissimilarity verification responseand associates the included verification information with thedissimilarity. Remediation module remediates 770 the dissimilarity bydetermining if the ground truth data or the digital map is accuratebased on the received verification information associated with thedissimilarity. Remediating 770 the dissimilarity can include generatinga new map using the ground truth data and/or digital map determined tobe accurate such that the road network is accurately represented on thenew map. Generally, the new map includes a connection ruleset thataccurately represents the connections of the road network. In othercases, remediating the dissimilarity can include modifying the digitalmap or connection ruleset of the digital map. Remediation module 340 canstore the new (or modified) map in map datastore 160.

For example, Greg sends 750 sends images, trace data, and a report as adissimilarity verification response to network system 140. Remediationmodule receives 760 the dissimilarity verification response. Machinevision systems of network system 140 determine that the image of thesign indicates that turning left onto Montgomery Street from MarketStreet is not allowed and the digital map is inaccurate while the groundtruth data is accurate. In another example, differential module 320accesses 510 the trace data included in the verification information todetermine 550 that the ground truth data is accurate. In anotherexample, an administrator of network system 140 reads the report in theverification information and defines that the digital map is inaccurate.Remediation module remediates 770 the dissimilarity by generating a newmap indicating that the left turn from California Street to MontgomeryStreet is not allowed and stores the generated new map in map datastore160.

In some cases, remediation module 310 can automatically determine thatthe ground truth data is accurate based on the observed trace datawithout sending a dissimilarity verification request. For example, if astatistically sufficient amount of ground truth data indicates that thedigital map is inaccurate, remediation module can determine that theground truth data is accurate. In this case, remediation module 310generates a map including the ground truth data rather than the digitalmap without sending a dissimilarity verification request to a clientdevice 110.

V. B Remediating Dissimilarities with a Map Verification

Sometimes sending a verification request to client devices (e.g., method700) may not be an efficient method of remediating 770 determined 550dissimilarities. In one example, the number of determined 550dissimilarities in the road network of the area is large and remediatingeach one individually (e.g., method 700) would require a large amount oftime. For instance, in a large city such as San Francisco, Calif.,remediating thousands of map dissimilarities using individualverification requests can take a considerable amount of time and effortby users traveling the road network. Therefore, it can be beneficial toremediate dissimilarities by leveraging the aggregate data collectioncapabilities of client devices 110 travelling the road network in thearea.

For example, in one configuration, remediation module 340 can act toremediate dissimilarities by initiating a map verification. Generally, amap verification includes sending a map verification request to clientdevices traveling the road network and receiving map verificationresponses in return. FIG. 800 is a flowchart of an example method 800 ofremediating dissimilarities via a map verification, according to oneembodiment.

To begin, remediation module 340 initiates 810 a map verification.Initiating 810 a map verification can be based on a variety of factorsincluding a threshold amount of time since the last map verification, athreshold number of detected dissimilarities, an action taken by asystem administrator, an observed density of dissimilarities of the roadnetwork above a threshold, a new road network without or any method ofinitiating a map verification.

Remediation module 340 accesses detected 550 dissimilarities of the roadnetwork in the area (i.e., network dissimilarities) and partitions 820the dissimilarities into a sub-network. That is, the networkdissimilarities are detected on various map elements in the road networkand remediation module 340 partitions 820 the map elements into a roadsub-network. Partitioning 820 the map elements into a road sub-networkcan be based on any number of map criteria. The map criteria can includegeographic area of the sub-network, a number of dissimilarities in thesub-networks, the type of dissimilarities, the region of the roadnetwork, any other characteristic of the road network, or any othercharacteristic of the dissimilarities. Each sub-network is associatedwith a verification status indicating whether the road sub-network hasbeen verified or has not been verified (i.e., unverified) by the mapverification.

For example, differential module 320 determines a dissimilarity densityof 250 dissimilarities per square mile in San Francisco. Remediationmodule 340 initiates 810 a map verification because the determineddissimilarity density is greater than a threshold dissimilarity density(e.g., 150/sq. mile). Remediation module 340 partitions 820 the roadnetwork of San Francisco, Calif. into road sub-networks, which, inaggregate, form the road network. In this example, remediation module340 partitions 820 the road network into sub-road networks based on ageographic size of the sub-network. For instance, the road network ofSan Francisco, Calif. is approximately a 7 mi by 7 mi square andremediation module partitions the road network into approximately 7840.25 mi by 0.25 mi square sub-networks. Each sub-network can include anynumber of dissimilarities (e.g., 0, 1, 2, . . . n). In another example,remediation module 340 partitions 820 the road network of San Francisco,Calif. such that each sub-network includes between 3 and 5dissimilarities. In this case, the road sub-networks can vary in sizeand shape with some being 1 mi by 1 mi mile squares and others beingpolygons with a small area. To begin, each road sub-network isassociated with a verification status indicating the road sub-networkhas been verified or has not been verified (i.e., unverified) during themap verification process 800.

Remediation module 340 determines 830 verification criteria for the mapverification. Verification criteria is set of information that dictateshow a map verification is executed. Generally, for a given roadsub-network, the road sub-network is verified once the verificationcriteria are met. For example, verification criteria can include abaseline threshold indicating an amount (e.g., a number of received mapverification responses) of verification information gathered about eachmap element in a road sub-network in the map verification, adissimilarity threshold indicating an amount of verification informationgathered about each dissimilarity in a road sub-network, a time windowindicating an amount of time verification information is gathered abouteach road sub-network during a map verification. The verificationcriteria can be further based on a type of dissimilarity to be verifiedduring a map verification, the region of the road network orsub-network, the type of verification information included in a mapverification response, or any other criteria based on thecharacteristics of the dissimilarities and the road network. Each roadsub-network can have the same or different verification criteria.

For example, remediation module determines 830 a similar verificationcriteria for each of the 1024 road sub-networks. The verificationcriteria defines a baseline threshold representing that verificationinformation about each map element of the road sub-network must bereceived 10 times, a dissimilarity threshold indicating thatverification information about each dissimilarity in the roadsub-network must be received at least 20 times, and that onlydirectional dissimilarities will be verified during the mapverification. Thus, in a road sub-network without a dissimilarity, theroad sub-network is verified after verification information about eachmap element in the road network has been received 10 times. Similarly,in a road sub-network with dissimilarities, the road sub-network isverified after verification information about each dissimilarity in theroad sub-network has been received 20 times in addition to receivingverification information about each map element 10 times.

Remediation module 340 sends 840 a map verification request to clientdevices travelling the road network in the area. Generally, the mapverification request includes the road sub-networks and the verificationstatus of each sub network. Verification module 340 of client devices110 travelling the road network receive 842 the map verificationrequest. Client devices 110 travelling the road network and, in somecases, providing service in the road network, obtain 844 verificationinformation for the road sub-networks. Multiple client devicestravelling the road network can, in aggregate, obtain verificationinformation more quickly than a single client device travelling the roadnetwork.

Obtaining 860 verification information can include obtaining images ofthe road sub-network and surrounding area, responding to questionnaires,gathering additional trace data, or any other method of obtainingverification information about the road sub-network. Different clientdevices 110 may obtain 860 different types of verification informationbased on the configuration of client device 110 and transportationvehicle of the user of the client device 110.

For example, remediation module 340 sends 840 a map verification requestincluding the road sub-networks and their verification status to clientdevices 110 providing service in the road network of San Francisco,Calif. The verification module 124 of client devices receives 842 themap verification request. Here, some client devices 110 obtain 844verification information of the road sub-networks by taking images ofthe road sub-network as client devices 110 travel the road sub-network,while other client devices 110 obtain 844 verification information ofthe road sub-networks by gathering telematics data of the roadsub-networks as they are travelled.

Verification module 124 sends 846 a map verification response includingthe obtained verification information to network system 140 andremediation module 340 receives 848 the map verification response. Invarious configurations, sending 846 map verification responses can occurin a variety of manners. In example, sending 846 a map verificationresponse can include sending 846 a map verification response every timenew verification information about a road sub-network is obtained 844,sending 846 a map verification response once a threshold amount ofverification information about a road sub-network or road sub-networksis obtained 844, sending 846 a map verification response based on thenetwork quality (e.g., network speed or type) or any other method ofsending a verification response. In some embodiments, sending 846 themap verification response can be continuous or near continuous. Further,in some embodiments, verification information can be stored on aphysical storage medium coupled to client device 110 and sending 846 mapverification response can include transporting the physical storagemedium to a physical location including a portion of network system 140.

For example, client devices 110 travelling the road network in SanFrancisco, Calif. are obtaining 844 verification information about theroad sub-networks as they travel. Client devices 110 obtaining 844telematics data as verification information send 846 a map verificationresponse every time new telematics data about the road sub-network isobtained 844. Client devices 110 taking images of the road sub-networkas verification information store the images on a hard drive coupled toclient device 110. A user of client device 110 can transport the harddrive to a location including a server connected to network system 140and sends 846 a map verification response by uploading the images tonetwork system 140.

Remediation module 340 aggregates 850 the received 848 map verificationresponses for the road network. For each road sub-network, remediationmodule 340 aggregates 850 map verification responses into a mapverification dataset for that road sub-network. Generally, remediationmodule 340 aggregates 850 map verification responses until theverification criteria are met for a sub-network. Once the verificationcriteria are met for a sub-network, verification module 340 changes theverification status for that sub-network from unverified to verified.

For example, client devices 110 send 846 map verification responsesincluding telematics data and images about the road sub-networks toremediation module 340. Remediation module 340 aggregates 850 thereceived 848 images and telematics data for each road sub-network into amap verification dataset. For a particular road sub-network in theCastro district of San Francisco, Calif., remediation module 340receives 848 verification information meeting the verification criteriafor the road sub-network when aggregated 850. That is, while aggregating850 map verification responses into a map verification dataset for theparticular road sub-network, verification module 350 receives 848verification information for each map element in the road sub-network 10times and verification information for each dissimilarity in the roadsub-network 20 times. Accordingly, verification module 350 changes theverification status of the particular road sub-network from unverifiedto verified.

Remediation module 340 sends 852 map verification updates to clientdevices as the map verification process progresses. Map verificationupdates include the verification status of each road sub-network and,generally, occurs when the verification status of a road sub-networkchanges. Verification module 124 of client devices 110 receive 854 themap verification update and update the verification status of the roadsub-networks accordingly. Verification modules 124 continue to obtain856 verification information and send 858 map verification responseswhen travelling unverified road sub-networks, but do not obtain 856verification information and send 858 map verification responses when intravelling verified road sub-networks.

For example, remediation module 340 sends 852 a map update to clientdevices 110 indicating that the particular road sub-network in theCastro district is verified. Thus, as client devices 110 travel throughthe particular road sub-network verification information is not obtained856, but verification information is obtained for other roadsub-networks.

For each detected dissimilarity, remediation module remediates 860 thedissimilarities by determining if the ground truth data or the digitalmap is accurate based on the map verification data. Remediation module340 can determine the accuracies using any of the methods describedherein. Remediating 770 the dissimilarity can include generating a newmap using the ground truth data and/or digital map determined to beaccurate such that the road network is accurately represented in the newmap. Generally, the new map includes a connection ruleset thataccurately represents the connections of the road network. In othercases, remediating 860 the dissimilarity can include modifying thedigital map or connection ruleset of the digital map. Remediation module340 can store the new (or modified) map in map datastore 160.

Using the map verification process to verify dissimilarities has manypotential benefits. First, the map verification process can use lessbandwidth as sub-networks that have been verified no longer send mapresponse. Second, the map verification process can take less timebecause client devices are verifying dissimilarities in aggregate ratherthan on at a time. Finally, the map verification process can rely onmore data to verify a dissimilarity rather than a single set ofverification information.

In some configurations, process 900 can be used to generate trace datafor method 500. That is the method can be used to obtain trace data ofroad networks by partitioning the road network into road sub-networks,sending the road sub-networks and their verification statuses to clientdevices, and obtaining information about the road sub-networks while thesub-network status remains unverified. In this configuration, there maybe no dissimilarities in any of the road sub-networks.

V. C Remediating Inaccurate Dissimilarities

While verifying determined dissimilarities is important, sometimesdifferential module 320 systematically determines 550 dissimilaritiesinaccurately. In this case, remediating dissimilarities that do notexist can cause network system to unnecessarily use additionalbandwidth, processing power, and time. Therefore, in someconfigurations, remediation module remediates dissimilarities bydetermining that the differential module 320 is inaccurately determiningdissimilarities 500 and acts to improve dissimilarity determination.

For example, using method 500, differential module 320 determines athreshold for determining 550 dissimilarities that is incorrect for theroad network in the area. In this case, traces included in ground truthdata that accurately represent the road network are, incorrectly,determined 550 to be dissimilarities because the determined threshold isinaccurate. Similarly, ground truth data that does not accuratelyrepresent the road network are, incorrectly, not determined 550 to bedissimilarities because the determined threshold is inaccurate. Inresponse, remediation module 340 determines a new threshold such thatdissimilarities are more accurately determined by remediation module340.

Giving a more contextual example, differential module 320 determines athreshold for determining 550 dissimilarities for a road network in SanFrancisco, Calif. is 0.5 m (e.g., a dissimilarity is determined 550 whenthe ground truth data is different from the digital map by 0.5 m).During normal operation, service providers routinely vary in position by1.0 m, and, accordingly, ground truth data includes a variation inposition of approximately 1.0 m. Here, the digital map is similar to theground truth data and differential module 320 should not determine 550 adissimilarity. However, differential module 320 determines 550dissimilarities using a 0.5 m threshold and positional variation of 1.0m in ground truth data causes differential module 320 to inaccuratelydetermine 550 dissimilarities exist where there are none. In response,remediation module 340 determines a new threshold for differentialmodule 320 of 1.3 m such that positional variation do not cause thedifferential module 320 to determine 550 dissimilarities.

In a counter example, differential module 320 determines a threshold fora road network in San Francisco, Calif. is 7 m. Here, a lane for a roadin the road network has recently moved 5 m and the digital map isdissimilar to the ground truth data. However, differential module 320determines 550 dissimilarities using a 10 m threshold and the 7 m lanemovement causes differential module 320 to inaccurately determine 550that there is not a dissimilarity when one exists. In response,remediation module 340 determines a new threshold for differentialmodule 320 of 5 m such that the lane change causes differential module320 to determine 550 a dissimilarity.

The preceding examples provide context for differential module 320inaccurately determining 550 a single dissimilarity in a road network.However, determining that a single dissimilarity is accurate orinaccurate is a complex problem when viewing aggregated trace data.Thus, analyzing dissimilarities in aggregate across a road network todetermine if differential module 320 is inaccurately determining 550dissimilarities is beneficial.

For example, a road network of a large metropolitan city in America, onaverage, has approximately 5 dissimilarities per square mile. Ifdifferential module 320 determines that there are 15 dissimilarities persquare mile (or, contrarily, 0 dissimilarities per square mile) for alarge metropolitan city in America, remediation module 340 can determinethat dissimilarity module 330 is inaccurately determiningdissimilarities and modify the determination process 500 (e.g.,generating a new threshold). FIG. 9 illustrates a flow diagram 900 of amethod for remediating dissimilarities that do not exist by determiningthat differential module 320 is inaccurately determiningdissimilarities, according to one embodiment.

To begin, remediation module 340 accesses 910 a set of dissimilaritiesand their characteristics from map datastore 160. Generally, the set ofdissimilarities and their characteristics are determined by differentialmodule 320 using method 500. The dissimilarities can includepositional/geometric dissimilarities and directional dissimilarities.The characteristics of the dissimilarities can include characteristicsof the road network, area, or environment, characteristics of mapelements in the road network, dissimilarity types, degree ofdissimilarity, dissimilarity distribution, dissimilarity densities, etc.

Remediation module 340 determines 920 an observed dissimilarity scorerepresenting a scored distribution of dissimilarities in the roadnetwork. The dissimilarity score can include a number of dissimilaritiesper area, a proportion of dissimilarities, an absolute number ofdissimilarities, or any other method or combination of methods to scorea density of dissimilarities. As an example, remediation modulecalculates an observed dissimilarity score for San Francisco, Calif. as12.7%.

In some cases, the observed dissimilarity score can also be based on anyof the characteristics of the dissimilarities. For example, a determined550 dissimilarity on an alleyway may contribute less to the observeddissimilarity score than a determined 550 dissimilarity on a highway. Inanother example, different regions (or elements) in the road network canhave different dissimilarity scores, and the region (or element) scorescan be used to determine the aggregate observed dissimilarity score forthe area. Additionally, the observed dissimilarity score can be based onthe type and degree of dissimilarity (e.g., a 10 m positional/geometricdissimilarity affects the dissimilarity score to a greater degree thanan allowed right turn directional dissimilarity).

Remediation module 340 determines 930 an expected dissimilarity scorefor the road network representing the expected scored distribution ofdissimilarities in the network. Generally, the expected dissimilarityscore is based on similar road networks in similar areas as the roadnetwork and area in question. That is, the expected dissimilarity scoreis a dissimilarity score based on a road network with a similar set ofcharacteristics to the road network in question. For example, theexpected dissimilarity score for San Francisco is 5.8% and is based onpreviously observed dissimilarity scores for New York, Houston, and LosAngeles. In other examples, the expected dissimilarity score can bebased on any other set of characteristics for the road network (e.g.,types of elements, element density, region, etc.).

Remediation module 340 determines 940 if differential module 320 isaccurately (or inaccurately) determining dissimilarities based on theobserved dissimilarity score and the expected dissimilarity score. Inone example, if the difference between the expected dissimilarity scoreand the observed dissimilarity score is above a threshold remediationmodule 340 determines 940 that the differential module 320 isinaccurately determining dissimilarities. In other configurations, thedetermination 940 can be further based on any of the characteristics ofthe dissimilarities.

Remediation module 340 remediates 950 the dissimilarities (e.g., actingto reduce the number of inaccurate dissimilarities) by modifyingdifferential module 320 based on determination 940. In oneconfiguration, remediation module modifies threshold values used indetermining dissimilarities. For example, if the observed dissimilarityscore is greater than the expected dissimilarity score (e.g., 12.7% vs5.8%) remediation module may modify differential module 320 to use alarger threshold when determining dissimilarities such that a subsequentobserved differential score is closer to the expected differentialscore. In various other configurations, remediation module 340 canmodify any part of process 500 for determining dissimilarities includingthresholds and scoring algorithms used to generate ground truth data,which digital maps are accessed, thresholds and scoring algorithms usedto determine dissimilarities, etc. In some examples, remediation module340 determines dissimilarities based on road segment characteristics.That is, for example, determining a dissimilarity for an alley uses adifferent threshold than determining a dissimilarity for an avenue. Inthis case, remediation module can modify any part of process 500 fordetermining dissimilarities based on segment characteristics. That is,for example, remediation module 340 can modify the threshold for analley but maintain the threshold for an avenue.

In some cases, remediation module 340 initiates a new determination ofdissimilarities using the modified process 500. Remediation module 340may continue executing method 900 until the observed dissimilarity scoreis similar (or as similar as it can be) to the expected dissimilarityscore.

In some embodiments, map dissimilarity module 150 uses visualizationmodule 330 to display the determined dissimilarities between the tracedata and the historical map. In this case, remediation module 340 cananalyze the visualization to determine if there is systemic inaccuratedetermination of dissimilarities. For example, remediation module 340can use a pattern recognition algorithm to determine that thevisualization includes an area of the digital map with a number ofdissimilarities greater than the expected number of dissimilarities. Inthis case, remediation module may modify the process 500 for determiningdissimilarities in that area of the historical map.

Remediation module can store any determined observed dissimilarityscore, their associated dissimilarities, and associated dissimilaritycharacteristics in the map datastore for future use by network system.

FIG. 10 is a block diagram illustrating components of an example machinefor reading and executing instructions from a machine-readable medium.Specifically, FIG. 5 shows a diagrammatic representation of networksystem 140 and client device 110 in the example form of a computersystem 1000. The computer system 1000 can be used to executeinstructions 1024 (e.g., program code or software) for causing themachine to perform any one or more of the methodologies (or processes)described herein. In alternative embodiments, the machine operates as astandalone device or a connected (e.g., networked) device that connectsto other machines. In a networked deployment, the machine may operate inthe capacity of a server machine or a client machine in a server-clientnetwork environment, or as a peer machine in a peer-to-peer (ordistributed) network environment.

The machine may be a server computer, a client computer, a personalcomputer (PC), a tablet PC, a set-top box (STB), a smartphone, aninternet of things (IoT) appliance, a network router, switch or bridge,or any machine capable of executing instructions 1024 (sequential orotherwise) that specify actions to be taken by that machine. Further,while only a single machine is illustrated, the term “machine” shallalso be taken to include any collection of machines that individually orjointly execute instructions 1024 to perform any one or more of themethodologies discussed herein.

The example computer system 1000 includes one or more processing units(generally processor 1002). The processor 1002 is, for example, acentral processing unit (CPU), a graphics processing unit (GPU), adigital signal processor (DSP), a controller, a state machine, one ormore application specific integrated circuits (ASICs), one or moreradio-frequency integrated circuits (RFICs), or any combination ofthese. The computer system 1000 also includes a main memory 1004. Thecomputer system may include a storage unit 1016. The processor 1002,memory 1004, and the storage unit 1016 communicate via a bus 1008.

In addition, the computer system 1006 can include a static memory 1006,a graphics display 1010 (e.g., to drive a plasma display panel (PDP), aliquid crystal display (LCD), or a projector). The computer system 1000may also include alphanumeric input device 1012 (e.g., a keyboard), acursor control device 1014 (e.g., a mouse, a trackball, a joystick, amotion sensor, or other pointing instrument), a signal generation device1018 (e.g., a speaker), and a network interface device 1020, which alsoare configured to communicate via the bus 1008.

The storage unit 1016 includes a machine-readable medium 1022 on whichis stored instructions 1024 (e.g., software) embodying any one or moreof the methodologies or functions described herein. For example, theinstructions 1024 may include the functionalities of modules of thesystem 130 described in FIG. 2. The instructions 1024 may also reside,completely or at least partially, within the main memory 1004 or withinthe processor 1002 (e.g., within a processor's cache memory) duringexecution thereof by the computer system 1000, the main memory 1004 andthe processor 1002 also constituting machine-readable media. Theinstructions 1024 may be transmitted or received over a network 1026 viathe network interface device 1020.

While machine-readable medium 1022 is shown in an example embodiment tobe a single medium, the term “machine-readable medium” should be takento include a single medium or multiple media (e.g., a centralized ordistributed database, or associated caches and servers) able to storethe instructions 1024. The term “machine-readable medium” shall also betaken to include any medium that is capable of storing instructions 1024for execution by the machine and that cause the machine to perform anyone or more of the methodologies disclosed herein. The term“machine-readable medium” includes, but not be limited to, datarepositories in the form of solid-state memories, optical media, andmagnetic media.

VI. Alternative Considerations

The foregoing description of the embodiments has been presented for thepurpose of illustration; it is not intended to be exhaustive or to limitthe patent rights to the precise forms disclosed. Persons skilled in therelevant art can appreciate that many modifications and variations arepossible in light of the above disclosure. For example, while thepresent disclosure discusses predicting provider involvement inpotential safety incidents, the methods and systems herein can be usedmore generally for any purpose where one would want to predictinvolvement in potential incidents using a machine learning model.

Some portions of this description describe the embodiments in terms ofalgorithms and symbolic representations of operations on information.These algorithmic descriptions and representations are commonly used bythose skilled in the data processing arts to convey the substance oftheir work effectively to others skilled in the art. These operations,while described functionally, computationally, or logically, areunderstood to be implemented by computer programs or equivalentelectrical circuits, microcode, or the like. Furthermore, it has alsoproven convenient at times, to refer to these arrangements of operationsas modules, without loss of generality. The described operations andtheir associated modules may be embodied in software, firmware,hardware, or any combinations thereof.

Any of the steps, operations, or processes described herein may beperformed or implemented with one or more hardware or software modules,alone or in combination with other devices. In one embodiment, asoftware module is implemented with a computer program productcomprising a computer-readable medium containing computer program code,which can be executed by a computer processor for performing any or allof the steps, operations, or processes described.

Embodiments may also relate to an apparatus for performing theoperations herein. This apparatus may be specially constructed for therequired purposes, and/or it may comprise a general-purpose computingdevice selectively activated or reconfigured by a computer programstored in the computer. Such a computer program may be stored in anon-transitory, tangible computer readable storage medium, or any typeof media suitable for storing electronic instructions, which may becoupled to a computer system bus. Furthermore, any computing systemsreferred to in the specification may include a single processor or maybe architectures employing multiple processor designs for increasedcomputing capability.

Embodiments may also relate to a product that is produced by a computingprocess described herein. Such a product may comprise informationresulting from a computing process, where the information is stored on anon-transitory, tangible computer readable storage medium and mayinclude any embodiment of a computer program product or other datacombination described herein.

Finally, the language used in the specification has been principallyselected for readability and instructional purposes, and it may not havebeen selected to delineate or circumscribe the inventive subject matter.It is therefore intended that the scope of the patent rights be limitednot by this detailed description, but rather by any claims that issue onan application based hereon. Accordingly, the disclosure of theembodiments is intended to be illustrative, but not limiting, of thescope of the patent rights, which is set forth in the following claims.

What is claimed is:
 1. A computer-executed method for verifying adigital map data, the method comprising: receiving, for each of aplurality of road segments, a set of trace data, each of the trace datain the set collected by a mobile computing device traversing a roadsegment of a plurality of road segments; determining, for each of theplurality of road segments, a dissimilarity score based upon differencesbetween the set of trace data for the road segment and stored map datafor the road segment; determining, for each of the plurality of roadsegments, whether the dissimilarity score exceeds a first thresholddissimilarity score; responsive to the dissimilarity score exceeding thefirst threshold dissimilarity score for more than an expected number ofthe plurality of road segments: increasing the first thresholddissimilarity score to form a second threshold dissimilarity score, suchthat the dissimilarity scores for the plurality of road segments do notexceed the second threshold dissimilarity score for more than theexpected number of the plurality of road segments; selecting forverification the road segments of the plurality of road segments havinga dissimilarity score exceeding the second threshold dissimilarityscore; and requesting verification of the selected road segments.
 2. Thecomputer-executed method of claim 1, wherein the differences between theroad segment and the stored map data for the road segment include adifference in position of the trace data of the road segment and thestored map data for the road segment.
 3. The computer-executed method ofclaim 1, wherein the differences between the road segment and the storedmap data for the road segment include a difference in direction of thetrace data of the road segment and the stored map data for the roadsegment.
 4. The computer-executed method of claim 1, wherein thedifferences between the road segment and the stored map data for theroad segment include a difference in a geometric shape of the trace dataof the road segment and the stored map data for the road segment.
 5. Thecomputer-executed method of claim 1, wherein the second thresholddissimilarity score is based on a second plurality of road segmentssimilar to the plurality of road segments.
 6. The computer executed ofclaim 1, wherein the second threshold dissimilarity score is based onthe area containing the plurality of road segments.
 7. Thecomputer-executed method of claim 1, comprising: determining a secondthreshold dissimilarity score for the plurality of road segments, basedon a plurality of previously observed dissimilarity scores for similarplurality of read segments.
 8. The computer-executed method of claim 1,comprising: determining a first threshold dissimilarity score for theplurality of road segments, based on a plurality of previously observeddissimilarity scores for similar plurality of read segments.
 9. Thecomputer-executed method of claim 1, wherein the first thresholddissimilarity score is based on a second plurality of road segmentssimilar to the plurality of road segments.
 10. The computer executedmethod of claim 1, wherein the second threshold dissimilarity score isbased on the area containing the plurality of road segments.
 11. Anon-transitory computer-readable storage medium storing instructions,the instructions that when executed by one or more processors cause theone or more processors to: receive, for each of a plurality of roadsegments, a set of trace data, each of the trace data in the setcollected by a mobile computing device traversing a road segment of aplurality of road segments; determine, for each of the plurality of roadsegments, a dissimilarity score based upon differences between the setof trace data for the road segment and stored map data for the roadsegment; determine, for each of the plurality of road segments, whetherthe dissimilarity score exceeds a first threshold dissimilarity score;responsive to the dissimilarity score exceeding the first thresholddissimilarity score for more than an expected number of the plurality ofroad segments: increase the first threshold dissimilarity score to forma second threshold dissimilarity score, such that the dissimilarityscores for the plurality of road segments do not exceed the secondthreshold dissimilarity score for more than the expected number of theplurality of road segments; select for verification the road segments ofthe plurality of road segments having a dissimilarity score exceedingthe second threshold dissimilarity score; and request verification ofthe selected road segments.
 12. The non-transitory computer-readablestorage medium of claim 11, wherein the differences between the roadsegment and the stored map data for the road segment include adifference in position of the trace data of the road segment and thestored map data for the road segment.
 13. The non-transitorycomputer-readable storage medium of claim 11, wherein the differencesbetween the road segment and the stored map data for the road segmentinclude a difference in direction of the trace data of the road segmentand the stored map data for the road segment.
 14. The non-transitorycomputer-readable storage medium of claim 11, wherein the differencesbetween the road segment and the stored map data for the road segmentinclude a difference in a geometric shape of the trace data of the roadsegment and the stored map data for the road segment.
 15. Thenon-transitory computer-readable storage medium of claim 11, wherein thesecond threshold dissimilarity score is based on a second plurality ofroad segments similar to the plurality of road segments.
 16. Thenon-transitory computer-readable storage medium of claim 11, wherein thesecond threshold dissimilarity score is based on the area containing theplurality of road segments.
 17. The non-transitory computer-readablestorage medium of claim 11, wherein the computer instructions furthercause the processor to: determine a second threshold dissimilarity scorefor the plurality of road segments, based on a plurality of previouslyobserved dissimilarity scores for similar plurality of read segments.18. The non-transitory computer-readable storage medium of claim 11,wherein the computer instructions further cause the processor to:determine a first threshold dissimilarity score for the plurality ofroad segments, based on a plurality of previously observed dissimilarityscores for similar plurality of read segments.
 19. The non-transitorycomputer-readable storage medium of claim 11, wherein the firstthreshold dissimilarity score is based on a second plurality of roadsegments similar to the plurality of road segments.
 20. Thenon-transitory computer-readable storage medium of claim 11, wherein thesecond threshold dissimilarity score is based on the area containing theplurality of road segments.